package org.spring.springboot.app.sys.role.dao;

import org.apache.ibatis.annotations.Param;
import org.spring.springboot.app.sys.role.domain.po.RoleManageRolePO;
import org.spring.springboot.app.sys.role.domain.po.SysRoleMenuPO;
import org.spring.springboot.app.sys.role.domain.po.SysRolePO;
import org.spring.springboot.app.sys.role.domain.vo.RoleMenuResVO;
import org.spring.springboot.app.sys.role.domain.vo.SysRoleResVO;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface SysRoleDao {
    int deleteByPrimaryKey(String id);

    int insert(SysRolePO record);

    int insertSelective(SysRolePO record);

    SysRoleResVO selectByPrimaryKey(String id);

    int updateByPrimaryKeySelective(SysRolePO record);

    int updateByPrimaryKey(SysRolePO record);

    List<SysRoleResVO> findPage(@Param("pageNum") int pageNum, @Param("pageSize") int pageSize);


    List<RoleMenuResVO> findRoleMenu(String roleId);

    int insertRoleMenu(SysRoleMenuPO record);

    int deleteRoleMenu(String roleId);

    List<SysRoleResVO> findManageRole(String sourceRoleId);

    int insertManageRole(RoleManageRolePO record);

    int deleteManageRole(String sourceRoleId);
}